import java.util.LinkedList;

class Node{
    public int val;
    Node next;
    public Node(int val){
        this.val=val;
    }
}
public class Test {
    public static void main(String[] args) {
        MyLinkList myLinkList=new MyLinkList();
        myLinkList.create();
        myLinkList.display();
        System.out.println();
        //头插法
        System.out.println("头插法");
        myLinkList.addFirst(12);
        myLinkList.addFirst(13);
        myLinkList.addFirst(14);
        myLinkList.display();
        System.out.println();
        //尾插法
        System.out.println("尾插法");
        myLinkList.addLast(21);
        myLinkList.addLast(22);
        myLinkList.addLast(23);
        myLinkList.display();
        System.out.println();

        //中间位置插入
        System.out.println("在1位置插入100");
        myLinkList.addIndex(1,100);
        myLinkList.addIndex(1,100);
        myLinkList.addIndex(1,100);
        myLinkList.display();
        System.out.println();
        //查找元素
        Boolean a=myLinkList.contains(100);
        System.out.println(a);
        //删除第一个100元素
        myLinkList.remove(100);
        myLinkList.display();
        System.out.println();
        //删除所有100的元素
        myLinkList.removeAllKey(100);
        myLinkList.display();
        System.out.println();
        //求size
        int Size=myLinkList.size();
        System.out.println(Size);
        //中间结点
        MyLinkList.Node node=myLinkList.middleNode();
        System.out.println(node.val);
        MyLinkList.Node node2=myLinkList.middleNode();
        System.out.println(node2.val);
        //翻转链表
        myLinkList.reverseList();
        myLinkList.display();
        System.out.println();
        //返回倒数第k个元素
       MyLinkList.Node node3=myLinkList.FindKthToTail(4);
        System.out.println(node3.val);
        //以x分割
        myLinkList.partition(8);
        myLinkList.display();
        //检查回文
        System.out.println(myLinkList.chkPalindrome());

    }

}
